1. Field of the Invention
The present invention relates to networked file servers and more particularly to a Fibre Channel protocol communications mode for a clustered storage system.
2. Background Information
A storage system is a computer that provides storage service relating to the organization of information on writeable persistent storage devices, such as memories, tapes or disks. The storage system is commonly deployed within a storage area network (SAN) or a network attached storage (NAS) environment. When used within a NAS environment, the storage system may be embodied as a file server including an operating system that implements a file system to logically organize the information as a hierarchical structure of directories and files on, e.g. the disks. Each “on-disk” file may be implemented as a set of data structures, e.g., disk blocks, configured to store information, such as the actual data for the file. A directory, on the other hand, may be implemented as a specially formatted file in which information about other files and directories are stored.
The file server, or filer, may be further configured to operate according to a client/server model of information delivery to thereby allow many client systems (clients) to access shared resources, such as files, stored on the filer. Sharing of files is a hallmark of a NAS system, which is enabled because of semantic level of access to files and file systems. Storage of information on a NAS system is typically deployed over a computer network comprising a geographically distributed collection of interconnected communication links, such as Ethernet, that allow clients to remotely access the information (files) on the file server. The clients typically communicate with the filer by exchanging discrete frames or packets of data according to pre-defined protocols, such as the Transmission Control Protocol/Internet Protocol (TCP/IP).
In the client/server model, the client may comprise an application executing on a computer that “connects” to the filer over a computer network, such as a point-to-point link, shared local area network, wide area network or virtual private network implemented over a public network, such as the Internet. NAS systems generally utilize file-based access protocols; therefore, each client may request the services of the filer by issuing file system protocol messages (in the form of packets) to the file system over the network. By supporting a plurality of file system protocols, such as the conventional Common Internet File System (CIFS), the Network File System (NFS) and the Direct Access File System (DAFS) protocols, the utility of the filer may be enhanced for networking clients.
A SAN is a high-speed network that enables establishment of direct connections between a storage system and its storage devices. The SAN may thus be viewed as an extension to a storage bus and, as such, an operating system of the storage system enables access to stored information using block-based access protocols over the “extended bus”. In this context, the extended bus is typically embodied as Fibre Channel (FC) or Ethernet media adapted to operate with block access protocols, such as Small Computer Systems Interface (SCSI) protocol encapsulation over FC (FCP) or TCP/IP/Ethernet (iSCSI). A SAN arrangement or deployment allows decoupling of storage from the storage system, such as an application server, and some level of storage sharing at the application server level. There are, however, environments wherein a SAN is dedicated to a single server. When used within a SAN environment, the storage system may be embodied as a storage appliance that manages access to information in terms of block addressing on disks using, e.g., a logical unit number (LUN) in accordance with one or more block-based protocols, such as FCP.
One example of a SAN arrangement, including a multi-protocol storage appliance suitable for use in the SAN, is described in United States Patent Application Publication No. US2004/0030668 A1, filed on Feb. 14, 2004, entitled MULTI-PROTOCOL STORAGE APPLIANCE THAT PROVIDES INTEGRATED SUPPORT FOR FILE AND BLOCK ACCESS PROTOCOLS by Brian Pawlowski et al., which is incorporated herein by reference in its entirety.
It is advantageous for the services and data provided by a storage system, such as a storage appliance, to be available for access to the greatest degree possible. Accordingly, some storage systems provide a plurality of storage appliances organized as a cluster, with a property that when a first storage appliance fails, the second storage appliance is available to take over and provide the services and the data otherwise provided by the first storage appliance. When the first storage appliance fails, the second storage appliance in the cluster (the “partner”) assumes the tasks of processing and handling any data access requests normally processed by the first storage appliance. One such example of a storage appliance cluster configuration is described in U.S. patent application Ser. No. 10/421,297, entitled SYSTEM AND METHOD FOR TRANSPORT-LEVEL FAILOVER OF FCP DEVICES IN A CLUSTER, by Arthur F. Lent, et al., now issued as U.S. Pat. No. 7,260,737 on Aug. 21, 2007, the contents of which are hereby incorporated by reference. In such a storage appliance cluster, an administrator may desire to take one of the storage appliances offline for a variety of reasons including, for example, to upgrade hardware, etc. In such situations, it may be advantageous to perform a “voluntary” user-initiated takeover operation, as opposed to a failover operation. After the takeover operation is complete, the storage appliance's data is serviced by its partner until a giveback operation is performed.
In certain known storage appliance cluster implementations, the transport medium is FC cabling utilizing the FCP protocol (SCSI embedded in FC) for transporting data. FIG. 1A is a schematic block diagram of a prior art storage appliance cluster environment 10. A client 12 is coupled to each of two Fibre Channel switches, 14 and 16. The client issues data access requests to storage appliance A (20) and B (22). In known failover techniques involving clusters of storage appliances, each storage appliance in the cluster maintains two physical FC ports, namely an A port and a B port. A direct coupling to each physical port (which may or may not be representative of one or more virtual ports), is required such as the coupling 26 between switch 14 and port A and the coupling 28 between switch 14 and port B of storage appliance A. For failover purposes, switch 14 is further configured so that it is directly connected to the ports A and B of storage appliance B via the couplings 30, 32, respectively. Thus, switch 14 can provide data access to storage appliance B for the client 12 should the switch 16 become unavailable. The A port is typically active and, as such, is utilized for processing and handling data access requests directed to the storage appliance, while the B port is typically inactive and operates in a standby mode. However, when a failover situation occurs, the B port is activated and assumes the identity of the failed partner storage appliance. At that point, the B port receives and handles data access requests directed to the failed storage appliance. Specifically, if switch 14 fails or storage appliance A fails, for example, there is a transfer of volumes over to storage appliance B in that those volumes can thus be accessed through switch 16 through the direct couplings 34 and 36 to ports A and B, respectively of storage appliance A. Switch 16 continues to access storage appliance B through its own direct couplings 38 and 40 to storage appliance B. In this way, the surviving storage appliance may process requests directed to both the storage appliance and its failed partner storage appliance. Such a conventional FC failover is further described in the above-incorporated patent application entitled SYSTEM AND METHOD FOR TRANSPORT-LEVEL FAILOVER OF FCP DEVICES IN A CLUSTER.
A noted disadvantage of such failover configurations is the requirement for a sec- and (or B) physical port on the storage appliance, which necessitates that an additional port be located on any switch or other routing hardware connecting the storage appliance to the FC network. In such configurations, the B port typically operates in a standby mode for the vast majority of time, e.g., at all times except during a failover; accordingly, the requirement for a second physical port (“port burn”) not only increases the costs of the appliance and its associated routing hardware, but also increases the costs for a system administrator to establish and maintain such a clustered storage appliance configuration. In a partner mode of clustering, the “B” port may be used to send information to its partner storage appliance over a cluster interconnect, which is typically an InfiniBand® communications path, or may be an ethernet, servenet, VI/Fibre Channel or an IB communications path. However, these modes still require that the B port remain idle until a failover or take over occurs. A mixed mode which sets up a Fibre Channel loop upon a failover has been proposed but this may not be compatible with all vendors' platforms and may require special firmware. In effect, the clustered storage appliance failover configuration requires twice as many physical ports on the storage appliances and switches as are normally needed.
Additionally, in a cluster failover situation, the Fibre Channel messaging can be difficult. For example, unlike Ethernet, where multiple addresses can be given to the same card, Fibre Channel adapters have one name and one name only so that one can not assign a new name to the Fibre Channel adapter that was associated with a “dead” port and then use that name for communications with a “working port”. In other words, a Fibre Channel adapter is needed for each port (the active A port, and the standby B port) for each storage appliance in the cluster, and a new path must be established to handle data access requests in failover mode. This can expensive because Fibre Channel devices can be expensive.
There remains a need, therefore, for a system that includes a clustering technique that does not require dedicated standby ports such that there is a utilization of all ports for processing data access requests throughout the system, and which also avoids the use of a loop mode upon failover.